package de.rs.espresso.interfaces;

import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;

/**
 * 
 * Defines a common interface to parse different logic interchange formats.
 * The <code>getProblems()</code>-method returns a List of {@link IProblem}s.
 * 
 * @author Jan
 *
 */
public interface IProblemProvider {
	
	
	/**
	 *  Imports the given File inputFile.
	 * 	
	 * @param inputFile
	 * @throws IOException
	 */
	public void importFile(File inputFile) throws IOException;
	
	
	/**
	 * 
	 * Parses the previous loaded File.
	 * 
	 * @throws IOException
	 * @throws ParseException
	 */
	public void parse() throws IOException, ParseException;
	
	
	/**
	 * Function to fetch the result of parsing.
	 * 
	 * @return
	 */
	public List<IProblem> getProblems();
	

	public void writeBack(List<IResult> results);
	

}
